package cn.frank.framework.king.conf.aspect.async;

import java.lang.annotation.*;

/**
 * 自定义异步执行注解
 *
 * @author renjy
 * @since 2023/3/20 16:03:37
 *
 *  方法上增加注解                               @UserTaskAnnotation(name = "关注目标批量新增", taskType = 3, funId = FunIdConstants.MBGK_GZMB, definedForMe = true)
 *  方法中获取任务ID(definedForMe=true)          String taskEntityId = UserTaskAspect.taskIdThreadLocal.get();
 *  方法中设置任务成功(definedForMe=true)         userTaskService.finish(taskEntityId, "关注目标批量新增 (成功:" + count[0] + " 失败:" + errorCount[0] + ")", OPERATION_TYPE_NONE,msg);
 *  方法中设置任务失败(definedForMe=true)         userTaskService.error(taskEntityId,"新增关注目标失败");
 *  方法中设置任务更新(definedForMe=true)         userTaskService.update(taskEntityId, "关注目标批量新增中 (" + count[0] + "/" + ctrlTargetFaceFormList.size() + ")");
 *
 *
 *
 */
@Target({ElementType.PARAMETER, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface UserTaskAnnotation {


    /**
     * 任务名称
     */
    String name() default "";

    /**
     * 任务类型，1-导入、2-导出、3-同步、4-分析
     */
    int taskType() default 0;

    /**
     * 所属业务数据id
     * @return
     */
    String objId() default "";

    /**
     * 业务跳转数据id
     */
    String funId() default "";

    /**
     * 是否交由业务处理结束 UserTask
     */
    boolean definedForMe() default false;



    /*
     *  userTaskService.error(taskEntity.getId(), "同步失败，请先检查设备分组是否已同步！", OPERATION_TYPE_NONE);
     *  userTaskService.finish(finalTaskEntity.getId(), OPERATION_TYPE_NONE);
     *  userTaskService.add(userId, "同步卡口", TASK_TYPE_SYNC, null, FunIdConstants.FUN_TOLLGATE_LIST);
     */


}
